
import axios from '@/utils/request'
export default {
  Store: {
    list: {
      list_filter: {
        name: {
          expression: `entity.getName() matches ":value"`,
          label: '门店名称',
          type: 'input'
        },
        'category.id': () => {
          return axios
            .get(`/manage/categories`, { params: { '@filter': `!entity.getParent()` }})
            .then(res =>
              Object.assign(
                { __label: '门店类型' },
                ...res.data.map(v => {
                  return { [v.id]: v.name }
                })
              )
            )
        },
        'region.id': () => {
          return axios
            .get(`/manage/regions`)
            .then(res =>
              Object.assign(
                { __label: '所属区域' },
                ...res.data.map(v => {
                  return { [v.id]: v.name }
                })
              )
            )
        },
      },
      list_display: [
        { property: 'user', label: '管理员账号' },
        { property: 'name', label: '门店名称' },
        'category',
        'region',
        'address',
        {
          property: 'headerAgent',
          label: '服务站收款账号'
        },
        {
          property: 'wineAgent',
          label: '投资人收款账号'
        },
        {
          property: 'status',
          label: '状态',
          component: {
            props: ['data'],
            render(h) {
              return (
                <el-tag>{['营业中', '停用'][parseInt(this.data)]}</el-tag>
              )
            }
          }
        }
      ]
    },
    form: {
      fields: [
        { property: 'user', field_options: { label: '管理员账号' } },
        'name',
        { property: 'logo', label: '封面图片', type: 'image' },
        'region',
        'address',
        { 
          property: 'category', 
          relation_filter: {
            '@filter': '!entity.getParent() && entity.getEnabled() == true',
            '@order': 'entity.name|DESC, entity.id|ASC'
          },
          field_options: { label: '销售类型' }, 
          help: '设置了对应类型的门店，就只能卖对应类型下面的产品' 
        },
        { property: 'director', field_options: { label: '门店负责人' } },
        { property: 'platformFeeRate', field_options: { label: '支付费率' }, default_value: 0 },
        { property: 'phone', field_options: { label: '负责人手机号' } },
        {
          property: 'status',
          required: true,
          default_value: '0',
          component: {
            props: ['form', 'property'],
            render(h) {
              return (
                <el-select v-model={this.form[this.property]} filterable>{
                  [
                    { label: '营业中', value: '0' },
                    { label: '停用', value: '1' }
                  ]
                    .map(status => {
                      return <el-option key={status.value} label={status.label} value={status.value} />
                    })
                }</el-select>
              )
            }
          }
        },
        // {
        //   property: 'placeAgent',
        //   required: false,
        //   type: 'RelationToOne',
        //   relation_filter: {
        //     '@filter': 'entity.getUserName() == ":value'
        //   },
        //   field_options: {
        //     label: '场所分成收款账号(不用，现在钱全部默认去门店，因为是成本，需要用来采购的)'
        //   },
        //   type_options: {
        //     entity_name: 'User',
        //     remote: true // Enable remote search with filter's ":value"
        //   },
        //   help: '场所分成是指产品提成设置里面的场所分成部分，订单结算之后，如果订单还存在未结算金额的，这些金额不会到这个场所分成账号，会到场所本身的管理账号，这个需要注意，如果是2个账号是同一个的场所，请不要填写本项'
        // },
        {
          property: 'headerAgent',
          required: false,
          type: 'RelationToOne',
          relation_filter: {
            '@filter': 'entity.getUserName() == ":value"'
          },
          field_options: {
            label: '服务站收款账号'
          },
          type_options: {
            entity_name: 'User',
            remote: true // Enable remote search with filter's ":value"
          },
          help: '服务站部分去的户，请输入前端注册的手机号码进行搜索选择，分成设置的服务站分成部分会自动到这个账号，如果没有设置本项，会影响正常分利'
        },
        {
          property: 'manageAgent',
          required: false,
          type: 'RelationToOne',
          relation_filter: {
            '@filter': 'entity.getUserName() == ":value"'
          },
          field_options: {
            label: '额外支付户'
          },
          type_options: {
            entity_name: 'User',
            remote: true // Enable remote search with filter's ":value"
          },
          help: '提成设置里面额外支出部分去的户，请输入前端注册的手机号码进行搜索选择，分成设置的服务站分成部分会自动到这个账号，如果没有设置本项，会影响正常分利'
        },
        // {
        //   property: 'penaltyAccount',
        //   required: false,
        //   type: 'RelationToOne',
        //   relation_filter: {
        //     '@filter': 'entity.getUserName() == ":value"'
        //   },
        //   field_options: {
        //     label: '扣款获取账号'
        //   },
        //   type_options: {
        //     entity_name: 'User',
        //     remote: true // Enable remote search with filter's ":value"
        //   },
        //   help: '设置了之后，场所扣款就会到这个账号的钱包'
        // },
        {
          property: 'wineAgent',
          required: false,
          type: 'RelationToOne',
          relation_filter: {
            '@filter': 'entity.getUserName() == ":value"'
          },
          field_options: {
            label: '投资人收款账号'
          },
          type_options: {
            entity_name: 'User',
            remote: true
          },
          help: '服务站投资人部分去的户，请输入前端注册的手机号码进行搜索选择，分成设置的投资人分成部分会自动到这个账号，如果没有设置本项，会影响正常分利'
        },
        { property: 'longitude', default_value: 0 },
        { property: 'latitude', default_value: 0 }
      ]
    }
  }
}

